
//LCP_18.早餐组合
class Solution {
    #define MOD 1000000007
public:
    int breakfastNumber(vector<int>& staple, vector<int>& drinks, int x) {
        //使用双指针分别指向两个数组
        int n=staple.size(),m=drinks.size();
        sort(staple.begin(),staple.end());
        sort(drinks.begin(),drinks.end());

        //通过枚举每一种饮料来看有多少种主食可以匹配
        int j=0,ret=0;
        for(int i=m-1;i>=0;i--)
        {
            while(j<n&&staple[j]+drinks[i]<=x) j++;
            ret=(ret+j)%MOD;
        }
        return ret;
    }
};